
#ifndef DESIGN_PATTERNS_PROTOTYPE_SHAPEMANAGER_H
#define DESIGN_PATTERNS_PROTOTYPE_SHAPEMANAGER_H

#include "Shape.h"
#include <map>

class ShapeManager
{
private:
  static std::map<std::string, Shape*> shape_map_;

public:
  static Shape* get_shape(const std::string& type);

  static Shape* get_prototype(const std::string& type);

  ~ShapeManager();
};

#endif //DESIGN_PATTERNS_PROTOTYPE_SHAPEMANAGER_H
